┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                      テキスト文字読み取りドライバー                        ┃
┃                              「GMD」                                    ┃
┃                               V2.0                                      ┃
┃                     Copyright (C) 1996-98,2000 by AIG-Soft                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
        説明書
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      これは何?                                                            ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

GMDは「Get Moji Driver」の略で、テキスト画面の文字を読み取ります。

実は、これだけではほとんど何もできません。
サポートプログラムと共に使うことで、画面上の文字を読みとってアプリケーションに
渡すという、X68では夢のような環境(本当か?)が実現されます。
(DicTK V3も全面的にGMDを使うようになっています。)

AIG-Soft提供のサポートツール(GMD V1.4発表現在)
        DicTK V3.1      ASK3リアルタイム辞書登録
        GMoji V1.4      テキスト画面文字読み取り->キー入力/ファイル

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      組み込み法                                                            ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

GMDはデバイスドライバーです。

Human68K V2.x以降で動作します(ただし確認したのはV3.02のみです。
Human68Kのバージョン判定は特にしていませんのでV1.xでも組み込めますが、
動作しません)。

CONFIG.SYS内のDEVICE=/PROGRAM=、さらにコマンドラインからの起動でも組み込めます。
常駐サイズは約35Kバイトです。

        GMD [オプション] [フォントハッシュファイル名]

フォントハッシュファイルとは、文字を高速に読み取るためのデータファイルです。
フォントハッシュファイル名は拡張子も含め、存在/保存位置をフルパス名で指定します。

「組み込み例」
        DEVICE = A:¥SYS¥GMD.X A:¥SYS¥FNTHASH.TBL       (Config.sys)
        PROGRAM = A:¥SYS¥GMD.X A:¥SYS¥FNTHASH.TBL       (Config.sys)
        GMD.X A:¥SYS¥FNTHASH.TBL                        (コマンドライン)

(ちなみに、device=とprogram=両方に記述した時は、記述の順序にかかわらず
device=が優先されます。)

フォントハッシュファイルは最初は存在しませんが、ファイル名が記述してあれば、
最初の起動時に自動的に作成します。そのため、最初の起動時だけ組み込みに時間が
かかりますが、次回からは一瞬で起動します。フォントを換えない/起動時に変更するが
後で変更することがない場合はファイル名を指定してください。
なおこのフォントハッシュファイルは、拙作DicTK V2.xのものとは異なります。
また、V2.0で構造が変わりました。前のファイルを削除するか、違うファイル名を
指定してください。

DEVICE=以外で組み込んだ時には解除出来ます。

なお、組み込み時のみFLOAT?.X(互換品)が必要です。

┌───────────────────────────────────┐
│オプション (-,/、英大文字小文字どちらでもOK)                        │
└───────────────────────────────────┘

次のオプションは常駐時のみ有効です。

/H      ワークエリアを高位メモリーから確保します。
        高位メモリーとは実装メモリーの後ろからのメモリーのことで、
        Xellent30や060Turboなどの持つHighメモリーではありません。
        デフォルトは、GMDの真後ろにワークエリアを確保します。

/G      デバイス名を@MOJIではなく@GMDにします。
        他のデバイスドライバーが@MOJIを使っている時など、どうしても組み込めない時だけに
        設定します。
        このオプションを付けた時は、@MOJIの代わりに@GMDを使うことでまったく同じ
        操作が出来ます。

/O      反転文字を読める状態で起動します。
        デフォルトは読めない状態です。
        常駐後の変更はAPIを使わない限り出来ません(手抜き)。

        読めるようにした場合、通常文字として全角/半角のチェックを行い、
        どの文字とも一致しない時に反転文字としてもう一度チェックするようになります。
        このため、反転文字読み取りには時間がかかりますし、
        本当に読めない文字の判定までの時間は倍かかるようになります。

/R      常駐を解除します。
        DEVICE=で組み込まれたときは解除できません。
        また、API(gmd.tecで説明)によって常駐解除ロックをされている時も
        常駐解除出来ません。

┌───────────────────────────────────┐
│組み込み時の注意                                                      │
└───────────────────────────────────┘

(1)GMDは"@MOJI"というデバイス名を追加します。
このため、組み込み後はファイル名として"@MOJI"は使えなくなります。
注意してください。
また、すでに他のドライバーが@MOJIを作っている場合には組み込めません。

ただし、前述の/Gオプションを使うとデバイス名を@GMDに変更出来ます。
その時は、以後、すべてのマニュアル内記述の@MOJIを@GMDに読み換えてください。


(2)ユーザーフォントを入れている場合は、必ずGMD組み込みの前にフォントを
入れてください。そうでないと、文字が読み取れなくなります。

ファイルの指定がない場合には毎回フォントハッシュを作成しまので、その分常駐に
時間がかかります。フォントを毎回換える場合はこうしてください。

フォントハッシュファイルは、組み込み時に読み込みますので、組み込み後にフォント
を変更した場合には文字が読み取れなくなります。この時は、一旦常駐を解除し、再度
組み入れて下さい。外字を追加し、その外字を登録したい場合も同様です。

フォントを換え、それをずっと使う場合には、いったん今あるフォントハッシュファイル
を削除して再組み込みしてください(もしくはファイル名を変更する)。
ファイルが存在するとフォントハッシュの再作成をしません。


(3)構造上、SX−Window上では使えません。
Ko−Window上でも使えません。

┌───────────────────────────────────┐
│補足                                                                  │
└───────────────────────────────────┘

フォントを高速に読みとる必要がありますので、それらを高速化するソフトを併用すると
効果的です。

        HIOCS.X         V1.10+16        SHARP/Y.Nakamura
        HIOCS-plus      V16.13          SHARP/Y.Nakamura/立花えり子
        HFONT.R         V1.22+          H.Ogasawara

これらについては、各ソフトのドキュメントを参照してください。
(HIOCS+HFONTの環境では、HFONTに対してユーザーフォントを与えなければフォントが
変わりません。HIOCSに与えても無効になります。これで悩んでしまった。)

┌───────────────────────────────────┐
│エラー                                                                │
└───────────────────────────────────┘

オプションが規定外の時は簡易説明を表示して終了します。

*GMD組み込み時に発生する可能性の有るエラーは次の通りです。

「フォントハッシュワークが確保できません」
        メモリーが足りないのでフォントハッシュワークが確保できません。
        もしくは、メモリーがおかしいのでワークが確保できません。

「フォントハッシュファイルが読み込めません:ファイル名」
        指定されたフォントハッシュファイルが存在しない
        ファイルサイズが足りない
        ファイルが正常に読み込めない

「フォントハッシュファイルが書き込めません:ファイル名」
        指定された名前ではフォントハッシュファイルが作成出来ない
        ディスク容量が足りない

「フォントハッシュファイルではありません:ファイル名」
        指定されたファイルはフォントハッシュファイルではありません。
        もしくは、このバージョンのGMDで使えるフォントハッシュファイル
        ではありません。(バージョンのメジャーバージョン=整数位が変わった
        ときには、フォントハッシュの内容が変更になります。)

「すでに組み込まれています」
        すでに組み込まれているのに再度組み込もうとしました。

「デバイス名:@MOJI はすでに使用されています」
        デバイス@MOJIは他のデバイスドライバーによって使われています。
        /Gを付けて組み込みしてみてください。

「デバイス名:@GMD はすでに使用されています」
        デバイス@GMDは他のデバイスドライバーによって使われています。
        /Gをはずして組み込みしてみてください。

/Gを付けても付けなくても「すでに使用されている」エラーが出た時には
GMDは組み込めません。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*GMD解除時に発生する可能性の有るエラーは次の通りです。

「フォントハッシュワークが解放できません.GMDは解除できません」
        フォントハッシュワークが解放できません。
        違うバージョンのGMDで常駐解除しようとした時にも発生することがあります。

「DEVICE=で組み込まれています.GMDは解除できません」
        DEVICE=で組み込まれた時は解除出来ません。

「常駐ロックされています.GMDは解除できません」
        APIにより常駐解除出来なくされています。

「組み込まれていません」
        GMDは組み込まれていません。従って解除もできません。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      普通の使い方                                                         ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

GMDを組み込むとデバイス"@MOJI"(小文字も可能)が追加されます。
これに対して特定のフォーマットで書き込むと、画面上の文字を読みとって
ファイルを作成します。

        "x,y,size,filename"

x,yは画面の座標です。-1,-1を指定すると現在のカーソル位置から読みとり、
読みとったところまでカーソルを移動させます。-1,-1以外ではカーソルは移動しません。
カーソル移動は、画面右端から左へロールし、画面最下行からは最上行へ移動します。
書きだしファイル中では、画面右端のロール時に改行コードを出力しません。

座標は必ず表示テキスト画面上で正しいもの((-1,-1)か(0,0)〜(95,31)、ただし
そのときの画面モードによる)を与えてください。正しくない場合、(おそらく)暴走は
しませんが、正しく読み取れません。

sizeは読みとり文字数です。バイト数ではありませんので、半角文字も全角文字も
1文字として数えます。>0なら読み取れない文字が出てくると中断します。<0なら
読み取れない文字は半角スペースにして読み込みを続行します。
=0なら単語単位(後述)で読みとります。必ず画面上に存在しうる文字数以内にしてください。
(最大で96*32=3072文字。)

filenameはファイル名です。このファイルに読みとった文字を書き出します。
このファイルはテキストファイルですが最後に$1aは入りません。

「例」
1,0,10,@KEY     (1,0)から10文字読み取って@KEYに書き出す
                ただし、10文字以内で読めない文字がある時はそこで中断
1,0,-10,@KEY    (1,0)から10文字読み取って@KEYに書き出す
                ただし、10文字以内で読めない文字があっても半角スペースとして続行
-1,-1,0,@KEY    現在の座標から単語単位で読み取って@KEYに書き出す

ファイルが作れない場合にもエラーは出ません。

反転文字まで読むかどうかは起動時オプション、またはAPIによる
設定によって決まります。

デバイス"@MOJI"はデバイスドライバーとコマンドをサポートしますが、それについては
GMD.tecにて説明します。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      テストしたソフト                                                      ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

以下のソフトで、GMoji.x(v1.23/v1.4)を使って、一応の取り込み動作テストをしています。
ただし、ちょっとやってみただけであり、その上での動作を(すべての場面に於いて)
保証するものではありません。

LOQUAT.Rのように、DicTKとは違った結果のものもあります。

-------------------------------------------------------------------------------
結果    ソフト名        バージョン      作者            補足
-------------------------------------------------------------------------------
エディター系
○      SuperED.X       v1.18           T.Nishikawa
○      ED.R            v0.99XD         S.Ueda
○      MY.X            v1.16           JOJO
○      EDT.X           V1.55           いろもの物理学者
○      FES.X           V1.26a          ずうやん        ペースト可能なのはASC入力時のみ
○      NG68.X          V1.3.1          M.Suzuki
×      NG12.X          V1.3.1          M.Suzuki        12dotフォント

ビューワー系
○      LOQUAT.R        v1.00以降       TAMA.           文字列検索枠内から
○      MSV             V0.84           SaTa.           文字列検索枠内から

システム系
○      COMMAND.X       V3.00           SHARP/Hudson
○      X-BASIC         V2.02           SHARP/Hudson
×      SCD.X           v3.00           SHARP/Hudson    画面が特殊
○      ASK68K.SYS      V3.02           SHARP/Access    読みは半角モードを使う
○      codeA.SYS       V0.07++         FDS             読みは半角モードを使う

ファイラー
×      WS            V0.90           Fuchi           フォント位置がテキストでない

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      仕様    "わかっている問題は「仕様」としてしまえばよい"                ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┌───────────────────────────────────┐
│よく似たフォントが多すぎる時                                          │
└───────────────────────────────────┘
GMDでは省メモリーのため、実用上問題ないと思われる部分を簡略化しています。
そのため、次のような状況ではフォントを読み取れないことがあります。

        「非常に似たフォントだらけである」

実際には、左上1〜13ラインがすべて同じフォントが256個以上ある場合にのみ
この現象がおきます。(漢字で言えば、同じへんやつくりの漢字が256個以上あると
いうことであり、半角で言えば、1バイト、1/2角、1/4角文字それぞれで、
全フォントが同じということ。)

標準のフォントを使う以上、絶対にこのようなことはありませんし、普通に読めるフォント
であれば、起こり得ません。よほど特殊なフォントを入れている場合にのみ起こり得ます。
まあ、そんなことをしている人は、辞書登録などしないでしょうけど。

┌───────────────────────────────────┐
│全角フォントが半角2つと同じ時                                        │
└───────────────────────────────────┘
全角フォントが、半角フォントを2つ並べたものと同じ場合、
フォントのパターンによって半角2つに読めたり全角1文字に読めたりします。
(8ドットパターンで見た時、ビット0が使われていたら全角優先に、
使われてなければ半角優先になります。)
この結果は、V1.3以降で変わりました。

これも、通常のフォントを使う限り、有り得ませんから問題無いでしょう。

┌───────────────────────────────────┐
│テキスト画面一番右端                                                  │
└───────────────────────────────────┘
GMDは常に全角文字幅でフォントを読み取って処理します。
このため、画面右端の桁から読み込もうとすると、横に隠れている桁まで読もうとします。
そこには何が書かれているか保証されない解らないので、場合によっては変な文字
コードを返すことがあります。
(通常はクリアされているはずなので$00でしょうが、そこをワークに使っていると
その限りではありません。)

特に、画面幅を128にしていた場合は(それが出来るなら)、その横の1桁(1バイト)
は次のラインの一番左の1バイトになります。このときも間違った文字コードを
返す可能性があります。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      お約束                                                                ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

(1)無料ネットへの転載は自由ですが、Q2を含む有料ネットへの転載は禁止します。
   各種メディアによる販売は個人/企業を問わず「禁止」です。
   また、ホームページへの掲載も「必ず事前に」ご連絡下さい。

(2)このプログラムは無保証です。これによって発生したいかなる問題にも
   当方はいっさい責任を負いません。

動かない/動作がおかしいと思う時は、お知らせ下さい。
また、このソフト上でも動いた/動かない、こうした方が良いなどのご意見も
お待ちしています。
単に「使っている!」やバグ報告だけでもうれしいです。
「説明書の内容がよくわからん!」でもけっこうです。(^_^;)

これが、皆さんに、長く使っていただけるツールであることと、
このプログラムを使う、X68現役ユーザーが多いことを祈りながら・・・。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      連絡先                                                                ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

        満開ネット      MKSX0424
        E-Mail          LeDA@osaka.email.ne.jp

上記ならよく連絡が付きますが、まれにしばらく通信出来なくなることがありますので、
気長にお待ち下さい。

                                LeDA